home *** CD-ROM | disk | FTP | other *** search
- /* Typen des Zielrechners auf dem Rechner des Compilers */
-
- typedef signed char zchar;
- typedef unsigned char zuchar;
- typedef signed short zshort;
- typedef unsigned short zushort;
- typedef signed int zint;
- typedef unsigned int zuint;
- typedef signed long zlong;
- typedef unsigned long zulong;
- typedef float zfloat;
- typedef double zdouble;
- typedef void *zpointer;
-
-
- /* maschinenabhaengige Routinen fuer Typkonversion auf Datentypen */
- /* des Zielcodes */
- #define zc2zl(x) ((zlong)(x))
- #define zs2zl(x) ((zlong)(x))
- #define zi2zl(x) ((zlong)(x))
- #define zl2zc(x) ((zchar)(x))
- #define zl2zs(x) ((zshort)(x))
- #define zl2zi(x) ((zint)(x))
- #define zl2zul(x) ((zulong)(x))
- #define zuc2zul(x) ((zulong)(x))
- #define zus2zul(x) ((zulong)(x))
- #define zui2zul(x) ((zulong)(x))
- #define zul2zuc(x) ((zuchar)(x))
- #define zul2zus(x) ((zushort)(x))
- #define zul2zui(x) ((zuint)(x))
- #define zul2zl(x) ((zlong)(x))
- #define zf2zd(x) ((zdouble)(x))
- #define zd2zf(x) ((zfloat)(x))
- #define zl2zd(x) ((zdouble)(x))
- #define zd2zl(x) ((zlong)(x))
- #define zul2zd(x) ((zdouble)(x))
- #define zd2zul(x) ((zulong)(x))
- #define zul2zp(x) ((zpointer)(x))
- #define zp2zul(x) ((zulong)(x))
-
- /* maschinenabhaengige Routinen, um Typen des Compiler in Typen des */
- /* Zielcodes zu konvertieren */
- #define l2zl(x) ((zlong)(x))
- #define zl2l(x) ((long)(x))
- #define ul2zul(x) ((zulong)(x))
- #define zul2ul(x) ((unsigned long)(x))
- #define d2zd(x) ((zdouble)(x))
- #define zd2d(x) ((double)(x))
-
- /* maschinenabhaengige Rechenroutinen fuer Datentypen des */
- /* Zielcodes */
- #define zlmult(a,b) ((a)*(b))
- #define zulmult(a,b) ((a)*(b))
- #define zdmult(a,b) ((a)*(b))
- #define zldiv(a,b) ((a)/(b))
- #define zuldiv(a,b) ((a)/(b))
- #define zddiv(a,b) ((a)/(b))
- #define zlmod(a,b) ((a)%(b))
- #define zulmod(a,b) ((a)%(b))
- #define zllshift(a,b) ((a)<<(b))
- #define zullshift(a,b) ((a)<<(b))
- #define zlrshift(a,b) ((a)>>(b))
- #define zulrshift(a,b) ((a)>>(b))
- #define zladd(a,b) ((a)+(b))
- #define zuladd(a,b) ((a)+(b))
- #define zdadd(a,b) ((a)+(b))
- #define zlsub(a,b) ((a)-(b))
- #define zulsub(a,b) ((a)-(b))
- #define zdsub(a,b) ((a)-(b))
- #define zlleq(a,b) ((a)<=(b))
- #define zulleq(a,b) ((a)<=(b))
- #define zdleq(a,b) ((a)<=(b))
- #define zleq(a) ((a)==0)
- #define zuleq(a) ((a)==0)
- #define zdeq(a) ((a)==0)
- #define zdeqto(a,b) ((a)==(b))
- #define zleqto(a,b) ((a)==(b))
- #define zuleqto(a,b) ((a)==(b))
- #define zpeq(a) ((a)==0)
- #define zlor(a,b) ((a)|(b))
- #define zulor(a,b) ((a)|(b))
- #define zland(a,b) ((a)&(b))
- #define zuland(a,b) ((a)&(b))
- #define zlxor(a,b) ((a)^(b))
- #define zulxor(a,b) ((a)^(b))
- #define zlkompl(a) (~(a))
- #define zulkompl(a) (~(a))
- #define zdkompl(a) (~(a))
- #define zlneg(a) (-(a))
- #define zulneg(a) (-(a))
- #define zdneg(a) (-(a))
-
- /* Struktur fuer erweiterte Adressierungsarten */
- struct AddressingMode{
- int basereg;
- long dist;
- int skal;
- int dreg;
- };
-
- /* Anzahl der Register */
- #define MAXR 24
-
- /* Anzahl der Optionsflags fuer den Codegenerator */
- #define MAXGF 10
-
- /* Soll der Compiler ICs mit z=q2 erzeugen? */
- #define USEQ2ASZ 0
-
- /* Welcher Typ wird mindestens fuer ADDI2P etc. benoetigt */
- #define MINADDI2P 2 /* short */
-
- /* Steht das hoechstwertige Byte eines Integers an erster Stelle? */
- /* Wenn nicht, wird z.Z. angenommen, dass es genau umgedreht ist. */
- /* Eine andere Darstellung wird Probleme bei Funktionsparametern */
- /* machen. */
- #define BIGENDIAN 1
-
-
- #ifndef EXIT_FAILURE
- #define EXIT_FAILURE 20
- #endif
-
- #ifndef EXIT_SUCCESS
- #define EXIT_SUCCESS 0
- #endif
-
-